<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 【局部变量/函数作用域】
        // 声明在函数内部的变量,和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到。
        // 最常见的例如函数内部,所以在一些地方也会看到有人把这种作用域称为函数作用域。

        function outFun(){
        var a ='函数内部的变量';

        function innerFun(){
            console.log(a);////函数内部的变量
        }
        innerFun();
    }
        // console.log(a); 
        //a is not defined 
        innerFun; 
        //innerFun is not defined 
        outFun()

        // 块级作用域
        // 在 ES 6 之前，是没有块级作用域的概念的。
        // ES 6 可以使用 let 关键字或者 const 关键字来实现块级作用域。
        // let 或 const声明的变量只在 let 或 const命令所在的代码块 {} 内有效，在 {} 之外不能访问。
        for(let i=0;i<10;i++){
            sum = i;
        }
        console.log('i=',++i);

    </script>
</body>
</html>